package com.zzzzzz.account.user;

import java.util.List;

public interface UserDao {

	void add(User user) throws UserAlreadyExistsException;

	User findByEmail(String email) throws NoSuchUserException;

	User findById(String userId);

	UserBase findUserBaseById(String userId);

	void editStatus(String userId, Integer status);

	void editPassword(String userId, String password);

	void editProfile(String userId, String username, String aboutMe);

	void editEmail(String userId, String email);

	/**
	 * @param userId
	 * @param portraitId
	 */
	void editPortrait(String userId, String portraitId);

	/**
	 * @param userId
	 * @param thumbnailId
	 */
	void editThumbnail(String userId, String thumbnailId);

	List<User> findAll(int start, int offset, boolean ascending);
	
	Boolean isEmailExisting(String email);
}
